package com.test.resource;

/**
 * ResourceLoader接口用于加载资源文件
 * 它提供了一种统一的方式来访问各种类型的资源，例如类路径资源、文件系统资源和网络资源
 */
public interface ResourceLoader {

    // 类路径资源的URL前缀
    String CLASSPATH_URL_PREFIX = "classpath:";

    // 文件系统资源的URL前缀
    String FILE_URL_PREFIX = "file:";

    // HTTP网络资源的URL前缀
    String HTTP_URL_PREFIX = "http:";

    // HTTPS网络资源的URL前缀
    String HTTPS_URL_PREFIX = "https:";

    /**
     * 根据资源位置获取资源对象
     *
     * @param location 资源的位置，可以是类路径、文件系统或网络的路径
     * @return Resource对象，代表加载的资源
     *         选择使用哪种方式来加载资源（类路径、文件系统、网络等）
     */
    Resource getResource(String location);

    /**
     * 获取当前的类加载器
     *
     * @return 当前的类加载器，用于加载类和资源
     *         为获取资源提供类加载上下文
     */
    ClassLoader getClassLoader();
}

